﻿using MugenMvvmToolkit.Interfaces;

namespace MugenMvvmToolkit.Ioc.Parameters
{
    /// <summary>
    /// Represents the base class of ioc parameter.
    /// </summary>
    public abstract class IocParameterBase : IIocParameter
    {
        #region Constructor 

        /// <summary>
        /// Initializes a new instance of the <see cref="IocParameterBase"/> class.
        /// </summary>
        /// <param name="name">Specified parameter name.</param>
        /// <param name="value">Specified parameter value.</param>
        /// <param name="parameterType">Specified parameter type. </param>
        protected IocParameterBase(string name, object value, ParameterType parameterType)
        {
            Name = name;
            Value = value;
            ParameterType = parameterType;
        }

        #endregion

        #region Property

        /// <summary>
        /// Gets the parameter name.
        /// </summary>
        public string Name { get; private set; }

        /// <summary>
        /// Gets the parameter value.
        /// </summary>
        public object Value { get; private set; }

        /// <summary>
        /// Gets the parameter type.
        /// </summary>
        public ParameterType ParameterType { get; private set; }

        #endregion
    }
}